package test_20210531;

public class TestInner {

    private int number = 100;

//    内部类可以访问其所在类的属性，包括private。
//    内部类创建自身对象需要先创建其所在类的对象
    public class Inner{

        private int number = 200;

        public void paint(){

            int number = 500;

//            局部覆盖原则
            System.out.println("paint():" + number);

//            通过this引用内部类的成员属性
            System.out.println("Inner private: " + this.number);

//            通过外部类名+this的方式引用外部类的成员属性
            System.out.println("TestInner private: " + TestInner.this.number);
        }
    }
    public static void main(String[] args) {
        TestInner inner = new TestInner();
        TestInner.Inner in = inner.new Inner();
        in.paint();
    }
}
